package com.yang.designmode.ActionMode.chainResponsibility.linkList;
//责任链中处理器的父类
public abstract class Handler {
    //持有下一个处理器的引用
    protected Handler nextHandler=null;

    // 持有下一个处理器的引用
    public void setSuccessor(Handler successor) {
        this.nextHandler=successor;
    }
    // 定义抽象处理方法
    protected abstract boolean doHandle();

    // 定义一个处理业务的方法
    public final void handle() {
        //让具体的处理器处理
        boolean isHandle = doHandle();
        // 如果没有处理，则将请求传递给下一个处理
        if(!isHandle && nextHandler!=null) {
            nextHandler.handle();
        }
    }
}